/**从0出发到target 第i次可以走i长度的距离 求最小移动次数
 * @param {number} target
 * @return {number}
 * 数学分析：sum == target直接返回
 * sum > target时需要找到一个整数 (s-target)/2 作为负数
 * 原本是+x 现在要-x 中间的差距就是2x = s-target
 */
var reachNumber = function (target) {
    target = Math.abs(target);
    let sum = 0, k = 0;
    while (true) {
        if (sum >= target && (sum - target) % 2 == 0) {
            return k
        }
        k++
        sum += k
    }
};